From 1acbdcc9b3b01298dc52040103e6f640953c1b8f Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Thu, 24 Sep 2020 16:31:00 -0300 Subject: [PATCH] appDisplay: Allow passing callback to AppFolderDialog.popdown() Next commit will allow removing icons from the folder, and we want to do that effectively after the dialog pops down. Add an optional callback to AppFolderDialog.popdown(). https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447 --- js/ui/appDisplay.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js index fa2782d81..43bab2db9 100644 --- a/js/ui/appDisplay.js +++ b/js/ui/appDisplay.js @@ -2093,6 +2093,8 @@ var AppFolderDialog = GObject.registerClass({ this._sourceMappedId = 0; this._popdownTimeoutId = 0; this._needsZoomAndFade = false; + + this._popdownCallbacks = []; } _addFolderNameEntry() { @@ -2297,6 +2299,9 @@ var AppFolderDialog = GObject.registerClass({ opacity: 255, }); this.hide(); + + this._popdownCallbacks.forEach(func => func()); + this._popdownCallbacks = []; }, }); @@ -2477,7 +2482,16 @@ var AppFolderDialog = GObject.registerClass({ this.emit('open-state-changed', true); } - popdown() { + popdown(callback) { + // Either call the callback right away, or wait for the zoom out + // animation to finish + if (callback) { + if (this.visible) + this._popdownCallbacks.push(callback); + else + callback(); + } + if (!this._isOpen) return; -- 2.39.5